/**
 * Класс таблицы списка.
 * @lends phonebook.view.AdderView
 */
phonebook.view.AdderView = Base.extend({
	
    controller : null,		// объект управления процессами Приложения   
	
    /**
     * Конструктор класса
     * @author Konstantin Chumachenko
     * 
     * @augments Base
     * @class Класс панели списка пользователей.
     * 
     * <p><b>Пример:</b></p>
     * <pre class="code">
     * var AdderView = new phonebook.view.AdderView(controller);
     * </pre>
     * 
     * @constructs
     * @param {Controller} controller Контроллер приложения.
     */
    constructor : function(controller) {	
        console.log("-- AdderView: Конструктор3.");
        this.controller = controller;
        this.domElement = $(ADDER_HOLDER);
        this.render(this.domElement);
    },
	
    /**
     * Возвращает DOM-элемент этой панели 
     * @function
     * @public 
     * @memberOf phonebook.view.AdderView#
     */
    getDomElement : function() {
        return this.domElement;
    },
	
    /**
     * Выполняется отрисовка панели.
     * @private 
     * @function
     * @param (elementDOM) renderTo Элемент DOM, внутри которого будет создан контейнер.
     * @return none
     */
    render : function(renderTo) {
        console.log("-- AdderView: render!.");
        var me = this;
        var model =me.controller.bigModel.getModel();
   
        
        var adderSurname = new widget.Text({
            id: 'surname',
            cls: "inp",
            renderTo: ADDER_FIRST_HOLDER,
            input : {
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 130,
                align: "left",
                text: 'Призвище:'
            }
        });
           
        var adderName = new widget.Text({
            id: 'name',
            cls: "inp",
            renderTo: ADDER_FIRST_HOLDER,
            input : {
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 130,
                align: "left",
                text: "Ім'я:"
            }
        });
        var adderPatronymic = new widget.Text({
            id: 'patronymic',
            cls: "inp",
            renderTo: ADDER_FIRST_HOLDER,
            input : {
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 130,
                align: "left",
                text: 'По батькові:'
            }
        });
        
        var adderTelephone = new widget.Text({
            id: 'telephone',
            cls: "inp",
            renderTo: ADDER_SECOND_HOLDER,
            input : {
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 80,
                align: "left",
                text: 'Телефон:'
            }
        });
        var adderTelephoneType = new widget.Text({
            id: 'telephone_type',
            cls: "inp",
            renderTo: ADDER_SECOND_HOLDER,
            input : {
                id:'phoneTypeInput',
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 80,
                align: "left",
                text: 'Тип:'
            }
        });
        
        $("#phoneTypeInput").autocomplete({
            source: me.getArrayFromModel(model.phoneType)
        });
        
        var adderRoom = new widget.Text({
            id: 'room',
            cls: "inp",
            renderTo: ADDER_THIRD_HOLDER,
            input : {
                id: 'roomInput',
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 80,
                align: "left",
                text: '№ Ауд.:'
            }
        });
        
        $("#roomInput").autocomplete({
            source: me.getArrayFromModel(model.room)
        });
        
        var adderUnit = new widget.Text({
            id: 'unit',
            cls: "inp",
            renderTo: ADDER_THIRD_HOLDER,
            input : {
                id: 'unitInput',
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 80,
                align: "left",
                text: 'Підрозділ:'
            }
        });
        
        $("#unitInput").autocomplete({
            source: me.getArrayFromModel(model.orgUnit)
        });
        
             var adderPost = new widget.Text({
            id: 'post',
            cls: "inp",
            renderTo: ADDER_THIRD_HOLDER,
            input : {
                id:"postInput",
                cls : 'inp',
                align: "left",
                width : 130
            },
            label:{
                width : 80,
                align: "left",
                text: 'Посада:'
            }
           
        });
        
        $("#postInput").autocomplete({
            source: me.getArrayFromModel(model.post)
        });
        
        var adderButton = new widget.Button({
            id: 'add',
            cls: "inp",
            renderTo: ADDER_BUTTON_HOLDER,
            text:  "Додати",
            listeners: {
                click: function(btn,  elementDom){
                    var data={
                        post: adderPost.value,
                        surname: adderSurname.value,
                        name: adderName.value,
                        patronymic: adderPatronymic.value,
                        phone: adderTelephone.value,
                        phoneType: adderTelephoneType.value,
                        room: adderRoom.value,
                        unit: adderUnit.value
                    }
                    me.controller.addFromAdder(data);
                }
            }
        });
    },
    getArrayFromModel: function(model){
        var answer=[];
        var length = model.length;
        for(var i=0;i<length;i++){
            answer.push(model[i][1]);
        }
        return answer;
    }
});